Magentoバージョン1.9.1.x以降で注文メールが届かない時の対処法
ショッピングサイトを構築するのに欠かせないECコマース専用のCMS『Magento』ですが、非常に高機能で柔軟な対応ができるのですが、設定が結構複雑だったりします。
最近、このMagantoでサイトを構築している時に、注文メールが届かないことに気付き、いろいろ調べた結果、Magantoバージョン1.9.1.x以降からCronジョブ設定をしないとメールは送信されない仕様になったとの事でした。
今回は、Magento1.9.1.x以降で注文メールが届かない時のCronジョブの設定方法を解説します。
MagentoのCronジョブ設定は公式ページが正解!
ネットで調べると色々な方法が混在していて、上位に表示されているものでも、情報が古かったりして結局は間違っていたりと、どれが本当の情報なのか分らず、大ハマりして結局解決するまでに1日半ほど費やしてしまいました。
サーバーのCronジョブは、あまり慣れていないと何それ?って感じで、設定方法がイマイチわからなかったりします。
結局、Magentoの公式ページで紹介されていたCronジョブ設定が正解でした!
* * * * * /bin/sh /[your Magento install dir]/cron.sh
http://devdocs.magento.com/guides/m1x/install/installing_install.html#install-cron
サーバーのcPanelからのCronジョブ設定方法
今回は、サーバー管理ソフトのcPanelからのMagentoのCronジョブの設定方法を解説したいと思います。ネットで調べると、crontabという言葉が頻繁に出てきますが、cPanelからの設定では、crontabは全く必要ありません。
cPanelにログインする
サーバーの管理画面にログインして、Cronジョブをクリックする
新しいCronジョブの追加
共通設定
共通設定のプルダウンの一番上にある「1分間に1回(* * * * *)」を選択します。
コマンド
コマンド部分に以下を入力します。
/bin/sh /[your Magento install dir]/cron.sh
[your Magento install dir]の部分が少し分りにくいですが、パスを入力します。
例えば、/bin/sh /home/username/public_html/cron.shの様になります。サーバーによってパスは変わりますので適宜変更してください。
最後に、「新しいcronジョブの追加 」ボタンをクリックして、設定は完了です。
それでも動かない場合は、cron.phpを修正する
私の場合、サーバー側でCronジョブを設定しましたが、結局Cronジョブは動かず、行きついたのがcron.phpに記述を追加する方法です。
ファイルの場所は、magentoディレクトリの直下にあります。
cron.phpファイル内の49行目付近
$isShellDisabled = (stripos(PHP_OS, ‘win’) === false) ? $isShellDisabled : true;
の後に
$isShellDisabled = true;
を追加してアップロードする。
参考にしたサイト:http://magento.stackexchange.com/questions/10894/magento-cron-php-does-nothing-after-it-runs